import java.util.Random;

/**
 * 加减法口算练习系统
 * 功能：生成50道100以内的加减法算式习题
 */
public class CalculationSystemV01 {
    
    public static void main(String[] args) {
        System.out.println("加减法口算练习系统");
        System.out.println("======================\n");
        
        // 生成50道习题
        generateExercises(50);
    }
    
    /**
     * 生成指定数量的加减法习题
     * @param count 习题数量
     */
    public static void generateExercises(int count) {
        Random random = new Random();
        
        for (int i = 0; i < count; i++) {
            // 随机生成加减法类型 (0: 加法, 1: 减法)
            int operation = random.nextInt(2);
            
            // 根据运算类型生成合适的操作数
            String exercise = generateExercise(operation, random);
            
            // 输出习题，格式为：题号. 算式
            System.out.printf("%2d. %s\n", (i + 1), exercise);
        }
    }
    
    /**
     * 根据运算类型生成一道习题
     * @param operation 运算类型 (0: 加法, 1: 减法)
     * @param random 随机数生成器
     * @return 生成的算式字符串
     */
    public static String generateExercise(int operation, Random random) {
        int num1, num2;
        String operator;
        
        if (operation == 0) { // 加法
            operator = "+";
            // 为保证结果在100以内，两个数之和不超过100
            num1 = random.nextInt(100); // 0-99
            num2 = random.nextInt(101 - num1); // 保证num1 + num2 <= 100
        } else { // 减法
            operator = "-";
            // 为保证结果为非负数，被减数大于等于减数
            num1 = random.nextInt(100) + 1; // 1-100
            num2 = random.nextInt(num1 + 1); // 0-num1
        }
        
        // 使用字符串表示算式
        return num1 + " " + operator + " " + num2 + " = ";
    }
}